// 注册全局自定义指令 input框自动聚焦

import Vue from 'vue'
export default {
  install () {
    Vue.directive('fofo', {
      inserted (el) { // 只有第一次插入才会执行inserted里的
        // console.log(el)
        // el.querySelector('input').focus()
        let isFind = false
        if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
          // 如果el是input框或者textarea框本身
          el.focus()// 直接聚焦
          isFind = true
        } else {
          const inp = el.querySelector('input')
          const ta = el.querySelector('textarea')
          if (inp && inp.nodeName === 'INPUT') {
            inp.focus()
            isFind = true
          }
          if (ta && ta.nodeName === 'TEXTAREA') {
            ta.focus()
            isFind = true
          }
        }
        if (isFind === false) {
          throw new Error('v-fofo位置绑错了')
        }
      },
      // 未来dom已存在走update 指令所在在标签已存在时
      update (el) {
        // console.log(el)
        // el.querySelector('input').focus()
        let isFind = false
        if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
          // 如果el是input框或者textarea框本身
          el.focus()// 直接聚焦
          isFind = true
        } else {
          const inp = el.querySelector('input')
          const ta = el.querySelector('textarea')
          if (inp && inp.nodeName === 'INPUT') {
            inp.focus()
            isFind = true
          }
          if (ta && ta.nodeName === 'TEXTAREA') {
            ta.focus()
            isFind = true
          }
        }
        if (isFind === false) {
          throw new Error('v-fofo位置绑错了')
        }
      }
    })
  }
}
